import {
    get
} from "../../utils/request"


const app = getApp()
// 改变弹幕颜色的方法
function getRandomColor() {
    const rgb = []
    for (let i = 0; i < 3; ++i) {
        let color = Math.floor(Math.random() * 256).toString(16)
        color = color.length === 1 ? '0' + color : color
        rgb.push(color)
    }
    return '#' + rgb.join('')
}


Page({

    /**
     * 页面的初始数据
     */
    data: {
        mvList: [],
        src: '',
        list: [],
        inputValue: '',
        danmuList: [{
            text: '第 1s 出现的弹幕',
            color: '#ff0000',
            time: 1
        }, {
            text: '第 3s 出现的弹幕',
            color: '#ff00ff',
            time: 3
        }],
        userInfo: null,
        dataPostid: null
    },

    bindInputBlur(e) {
        console.log(e);

        this.data.inputValue = e.detail.value
    },

    bindButtonTap() {
        const that = this
        wx.chooseVideo({
            sourceType: ['album', 'camera'],
            maxDuration: 60,
            camera: ['front', 'back'],
            success(res) {
                that.setData({
                    src: res.tempFilePath
                })
            }
        })
    },

    bindVideoEnterPictureInPicture() {
        console.log('进入小窗模式')
    },

    bindVideoLeavePictureInPicture() {
        console.log('退出小窗模式')
    },

    bindPlayVideo() {
        console.log('1')
        this.videoContext.play()
    },
    bindSendDanmu() {
        this.videoContext.sendDanmu({
            text: this.data.inputValue,
            color: getRandomColor(),
            time: this.currentTime,
        })


        


        const data = {

            from: this.data.userInfo.username, // 发送人，当前用户的用户名

            createTime: new Date().getTime(), // 发送时间

            cmd: 11, // 命令固定内容

            group_id: this.courseid, // 分组id。  想要发送到哪个组里

            chatType: 1, //  聊天类型 固定内容

            msgType: 0, // 消息类型 固定内容

            content: JSON.stringify({
            text: this.data.inputValue,
            color: getRandomColor(),
            time: this.currentTime,
            }), // 消息内容，自己设计结构，比如你想发送图片（图片上传的接口）

            nickName: this.data.userInfo.nickname, // 用户昵称

            avatar: this.data.userInfo.avatar, // 用户头像

            type: "1" // 消息类型。 你可以自己设计，发送过去是什么，返回的就是什么（1: 普通文本 2: 图片 3：点赞 4， 送花）

        }


        wx.sendSocketMessage({
            data: JSON.stringify(data),
        })

        // this.setData({
        //     inputValue: ""
        // })


    },

    videoErrorCallback(e) {
        console.log('视频错误信息:')
        console.log(e.detail.errMsg)
    },








    

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        console.log(options.id);
        const dataid = options.id
        // 列表接口 全部MV
        get(`http://showme.myhope365.com/music-api/mv/url?id=${dataid}`).then(res => {
            console.log(res.data);
            // const data=JSON.parse(res.data.data)

            this.data.mvList = res.data.data
            this.setData({
                mvList: this.data.mvList
            })
            console.log(this.data.mvList);
        })

        // 获取用户信息
        app.globalData.loginPromise.then(() => {
            if (app.globalData.isLogin) {
                console.log("此时是登录状态");

                this.setData({
                    userInfo: app.globalData.user
                })
                console.log(this.data.userInfo);


                this.username = this.data.userInfo.userName
                this.password = "123456"
                this.courseid = "web07" + options.id
                this.nickname = this.data.userInfo.loginName
                this.avatar = this.data.userInfo.avatar


                // 网址
                const url = `wss://showme.myhope365.com/websocketChat?username=${this.username}&password=${this.password}&courseId=${this.courseid}&nickName=${this.nickname}&avatar=${this.avatar}`

                wx.connectSocket({
                    url
                })

                wx.onSocketOpen((result) => {
                    console.log("链接打开了")

                    this.getHistory(),
                        this.detection()
                })

                wx.onSocketMessage((result) => {
                    // 监听 WebSocket 接受到服务器的消息事件
                    console.log(result);
                    const mm = JSON.parse(result.data)
                    console.log(mm);

                    if (mm.command == 11) {
                        this.data.list.push(mm.data)
                    } else if (mm.command === 20 && mm.code === 10018) {
                    console.log(111111111111111111111111);
                    
                        console.log(mm.data);

                        // this.data.list = this.data.list.concat(mm.data.groups[this.courseid])
                        this.data.danmuList=mm.data.groups[this.courseid].map(item=>{
                            return JSON.parse(item.content) 
                        })
                        this.setData({
                            danmuList:this.data.danmuList
                        })
                        
                        
                        console.log(111111111111111111111111);


                    }

                    this.setData({
                        list: this.data.list
                    })
                    console.log(this.data.list);

                })

            } else {
                console.log('未登录');

                wx.redirectTo({
                    url: '/pages/loginin/loginin',
                })
            }
        })


    

        this.setData({
            inputValue: ""
        })
    },


    detection() {
        this.time = setInterval(() => {
            const data = {
                cmd: 13, // 固定参数
                hbbyte: "-127", // 固定参数
            };
            const str = JSON.stringify(data);
            wx.sendSocketMessage({
                data: str,
            });
        }, 5000);
    },

    // 获取历史信息
    getHistory() {
        const history = {
            cmd: 19, // 命令 

            type: 1, // 类型 固定值

            groupId: this.courseid, //  分组的id

            userId: this.username // 用户id（这里可以用loginName）
        }


        wx.sendSocketMessage({
            data: JSON.stringify(history),
        })

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        this.videoContext = wx.createVideoContext('myVideo')
    },
    timeUpdate(e) {
        this.currentTime = Math.floor(e.detail.currentTime);
    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {
        clearInterval(this.time);
        wx.closeSocket({
            code: 1000,
        });
    },
    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {
        return {
            title: 'video',
            path: 'page/component/pages/video/video'
        }
    },

})